package main

import (
	"fmt"
	"os"
	"syscall"
)

const (
	// 只读，只写，读写 三种必须指定一个
	O_RDONLY int = syscall.O_RDONLY // 以只读的模式打开文件
	O_WRONLY int = syscall.O_WRONLY // 以只写的模式打开文件
	O_RDWR   int = syscall.O_RDWR   // 以读写的模式打开文件
	// 剩余的值用于控制行为
	O_APPEND int = syscall.O_APPEND // 当写入文件时，将数据添加到文件末尾
	O_CREATE int = syscall.O_CREAT  // 如果文件不存在则创建文件
	O_EXCL   int = syscall.O_EXCL   // 与O_CREATE一起使用, 文件必须不存在
	O_SYNC   int = syscall.O_SYNC   // 以同步IO的方式打开文件
	O_TRUNC  int = syscall.O_TRUNC  // 当打开的时候截断可写的文件
)

func main() {
	// 方法一
	file, err := os.Open("/data/t1.txt")
	if os.IsNotExist(err) {
		fmt.Println("文件不存在：", os.IsNotExist(err))
	} else if err != nil {
		fmt.Println("文件访问异常")
	} else {
		fmt.Println(file, err)
	}

}
